git rebase
git rebase -i HEAD~2 直近の2つのcommitをまとめる。
その後に、1つ前(直近)をsquash, 2つ前をpickにして、writeすれば良い。
ただ、timestampは、(当然) pickされた 2つ前のcommitになる。
git squash and preserve last commit's timestamp - Stack Overflow
ただ、remote に pushされていると、 問題がある。
ググると、git pull --rebase`しろと、
何故 git rebase は駄目で git pull –rebase はいいのか « LANCARD.LAB|ランカードコムのスタッフブログ
リモートの更新がローカルのコミットの手前に反映され、ローカルのコミットのハッシュが変わってしまいました
ハッシュが変わったコミットはまだリモートに存在していません
conflictが大量にでたので、
git push -fとした。 チーム開発だと....
git pushする前に、rebaseしよう...
基本的な理解
別々のブランチで...繋げ直す
複数のコミットを1コミットにまとめる
これで完璧! 図解でわかるgit rebaseの2つの使い方! | 侍エンジニア塾ブログ(Samurai Blog)より
分かりやすかった。
🐙 Git series 2/3: Rebase and the golden rule explained · daolf
他の人がpullする可能性のあるbranch上で rebaseすると、そのbranchが複雑化するので、良くない。
#git_commands
git 3-way merge